This specification relates to static analysis of computer software source code.
Static analysis refers to techniques for analyzing computer software source code without executing the source code as a computer software program.
Static analysis can be performed on a code base, which may be referred to as a project. A project generally includes a collection of source code files organized in a particular way, e.g., arranged in a hierarchical directory structure, with each source code file in the project having a respective path.
Software developers can develop and maintain source code in a project using an integrated development environment (IDE). Example IDEs include Eclipse, available from the Eclipse Foundation, and NetBeans, available from Oracle Corporation. An IDE is an application, or a suite of applications, that facilitates developing source code on a single user device through a graphical user interface. An IDE usually has applications including a source code editor, a compiler, and a debugger. IDEs often also have a file browser as well as object and class browsers.
In this specification, for brevity, operations will sometimes be described as being performed by an IDE. To say that operations being are performed by an IDE means that one or more of the software applications of the IDE performs the operations. For example, to say that an IDE compiles source code files means that a compiler of the IDE compiles source code files.
IDEs can present, in a graphical user interface, information identifying compiler and linker errors and warnings. An IDE can also highlight the lines of source code that generate such errors and warnings.
IDEs also support performing incremental builds of a project. An incremental build is a build that compiles only source code files in a project that have changed since the project was last built, as well as the compilation of any other files affected by the changes to the source code files.